/*
 * Copyright (c)  2020,  DataPipeline
 * All rights reserved.
 *
 * Id:ObjectSelectBuilder.java   2020-07-18 16:25 wanglijun
 */
package cn.datacare.orm.annotation.builder;

import cn.datacare.orm.source.SQLResult;
import cn.datacare.orm.source.SQLScript;

import java.lang.annotation.Annotation;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * Title:
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2020
 * </p>
 * <p>
 * Company/Department: DataPipeline
 * </p>
 *
 * @author wanglijun
 * @version 1.0
 * @since 2020-07-18 16:25
 */
public interface ObjectSelectBuilder {
    /**
     *
     * @param target
     * @param sqlScript
     * @param annotation
     * @param paras
     */
    void beforeSelect(Class target, SQLScript sqlScript, Annotation annotation, Map<String, Object> params);

    /**
     *
     * @param target
     * @param entities
     * @param sqlScript
     * @param annotation
     * @param sqlResult
     * @return List<Object>
     */
    List<Object> afterSelect(Class target, List<Object> entities, SQLScript sqlScript, Annotation annotation,
                             SQLResult sqlResult);
}
